home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.1 (Developer) [x86] / NeXT Step 3.1 Intel dev.cdr.dmg / NextDeveloper / Makefiles / app / basicrules.make < prev    next >
Text File  |  1993-04-12  |  6KB  |  174 lines

  1. ###############################################################################
  2. #  NeXT basicrules.make
  3. #  Copyright 1992, NeXT Computer, Inc.
  4. #
  5. #  This makefile provides a generically useful set of rules for building
  6. #  derived files within the framework of app makefiles.  
  7. #  
  8. ###############################################################################
  9.  
  10. .SUFFIXES:
  11. .SUFFIXES: .o .p .C .cc .cxx .cpp .c .m .M .s .h .ym .y .lm .l .pswm .psw .mig .def .msg  .bproj .subproj .copy .installsrc .writable .clean $(BUNDLE_EXTENSION) .depend .lproj .dbmodel .dbmodela
  12.  
  13. ALL_CFLAGS = $(CFLAGS) $(PROJ_CFLAGS) -I$(SYM_DIR) $(OTHER_CFLAGS) $(RC_CFLAGS)
  14.  
  15. # Compilation rules:
  16. .c.o:
  17.     $(CC) $(ALL_CFLAGS) -I. -c $< -o $(OFILE_DIR)/$*.o
  18. .m.o:
  19.     $(CC) $(ALL_CFLAGS) -I. -c $< -o $(OFILE_DIR)/$*.o
  20. .M.o:
  21.     $(CC) -ObjC++ $(ALL_CFLAGS) $(C++CFLAGS) -I. -c $< -o $(OFILE_DIR)/$*.o
  22. .C.o:
  23.     $(CC) -ObjC++ $(ALL_CFLAGS) $(C++CFLAGS) -I. -c $< -o $(OFILE_DIR)/$*.o
  24. .cc.o:
  25.     $(CC) -ObjC++ $(ALL_CFLAGS) $(C++CFLAGS) -I. -c $< -o $(OFILE_DIR)/$*.o
  26. .cxx.o:
  27.     $(CC) -ObjC++ $(ALL_CFLAGS) $(C++CFLAGS) -I. -c $< -o $(OFILE_DIR)/$*.o
  28. .cpp.o:
  29.     $(CC) -ObjC++ $(ALL_CFLAGS) $(C++CFLAGS) -I. -c $< -o $(OFILE_DIR)/$*.o
  30.  
  31. .h.p:
  32.     -$(CC) -precomp $(ALL_CFLAGS) $*.h -o $*.p
  33.         # Note that because precomps must go in the same directory as the .h
  34.         # we may not be able to write the precomp, so use a '-'
  35.     
  36. # pswrap-related rules:
  37. .psw.h: 
  38.     $(PSWRAP) $(PSWFLAGS) -a -h $(SYM_DIR)/$*.h -o $(SYM_DIR)/$*.c $*.psw
  39. .psw.c:
  40.     $(PSWRAP) $(PSWFLAGS) -a -h $(SYM_DIR)/$*.h -o $(SYM_DIR)/$*.c $*.psw
  41. .psw.o:
  42.     $(PSWRAP) $(PSWFLAGS) -a -h $(SYM_DIR)/$*.h -o $(SYM_DIR)/$*.c $*.psw
  43.     $(CC) $(ALL_CFLAGS) -c $(SYM_DIR)/$*.c -o $(OFILE_DIR)/$*.o
  44. .pswm.h:
  45.     $(PSWRAP) $(PSWFLAGS) -a -h $(SYM_DIR)/$*.h -o $(SYM_DIR)/$*.m $*.pswm
  46. .pswm.m:
  47.     $(PSWRAP) $(PSWFLAGS) -a -h $(SYM_DIR)/$*.h -o $(SYM_DIR)/$*.m $*.pswm
  48. .pswm.o:
  49.     $(PSWRAP) $(PSWFLAGS) -a -h $(SYM_DIR)/$*.h -o $(SYM_DIR)/$*.m $*.pswm
  50.     $(CC) $(ALL_CFLAGS) -c $(SYM_DIR)/$*.m -o $(OFILE_DIR)/$*.o
  51.  
  52.  
  53. # yacc and lex-related rules
  54. .y.o:
  55.     @(initdir=`pwd`;                                                \
  56.     cd $(SYM_DIR);                                                  \
  57.       cmd="$(YACC) $(YFLAGS) $$initdir/$*.y" ; echo $$cmd; $$cmd ;    \
  58.       cmd="$(MV) $(MVFLAGS) y.tab.c $*.c" ; echo $$cmd; $$cmd ;    \
  59.       cmd="$(CP) $(MVFLAGS) y.tab.h $*.h" ; echo $$cmd; $$cmd ;    \
  60.     cd $$initdir ;                             \
  61.     cmd="$(CC) $(ALL_CFLAGS) -I$$initdir -c $(SYM_DIR)/$*.c -o $(OFILE_DIR)/$*.o" ; \
  62.     echo $$cmd ; $$cmd )
  63.  
  64. .y.c .y.h:
  65.     @(initdir=`pwd`;                                                \
  66.     cd $(SYM_DIR);                                                  \
  67.       cmd="$(YACC) $(YFLAGS) $$initdir/$*.y" ; echo $$cmd; $$cmd ;    \
  68.       cmd="$(MV) $(MVFLAGS) y.tab.c $*.c" ; echo $$cmd; $$cmd ;    \
  69.       cmd="$(CP) $(MVFLAGS) y.tab.h $*.h" ; echo $$cmd; $$cmd )
  70.  
  71. .ym.o:
  72.     @(initdir=`pwd`;                                                 \
  73.     cd $(SYM_DIR);                                                  \
  74.       cmd="$(YACC) $(YFLAGS) $$initdir/$*.ym" ; echo $$cmd; $$cmd ;    \
  75.       cmd="$(MV) $(MVFLAGS) y.tab.c $*.m" ; echo $$cmd; $$cmd ;    \
  76.       cmd="$(CP) $(MVFLAGS) y.tab.h $*.h" ; echo $$cmd; $$cmd ;    \
  77.     cd $$initdir ;                             \
  78.     cmd="$(CC) $(ALL_CFLAGS) -I$$initdir -c $(SYM_DIR)/$*.m -o $(OFILE_DIR)/$*.o" ; \
  79.     echo $$cmd ; $$cmd )
  80.  
  81. .ym.m .ym.h:
  82.     @(initdir=`pwd`;                                                 \
  83.     cd $(SYM_DIR);                                                  \
  84.       cmd="$(YACC) $(YFLAGS) $$initdir/$*.ym" ; echo $$cmd; $$cmd ;    \
  85.       cmd="$(MV) $(MVFLAGS) y.tab.c $*.m" ; echo $$cmd; $$cmd ;    \
  86.       cmd="$(CP) $(MVFLAGS) y.tab.h $*.h" ; echo $$cmd; $$cmd )
  87.  
  88. .l.o:
  89.     @(initdir=`pwd`;                                              \
  90.     cd $(SYM_DIR);                                         \
  91.       cmd="$(LEX) $(LFLAGS) $$initdir/$*.l" ; echo $$cmd; $$cmd ;    \
  92.       cmd="$(MV) $(MVFLAGS) lex.yy.c $*.c" ; echo $$cmd; $$cmd ;    \
  93.     cd $$initdir ;                             \
  94.     cmd="$(CC) $(ALL_CFLAGS) -I$$initdir -c $(SYM_DIR)/$*.c -o $(OFILE_DIR)/$*.o" ; \
  95.     echo $$cmd ; $$cmd )
  96.  
  97. .l.c:
  98.     @(initdir=`pwd`;                                              \
  99.     cd $(SYM_DIR);                                         \
  100.       cmd="$(LEX) $(LFLAGS) $$initdir/$*.l" ; echo $$cmd; $$cmd ;    \
  101.       cmd="$(MV) $(MVFLAGS) lex.yy.c $*.c" ; echo $$cmd; $$cmd )
  102.  
  103. .lm.o:
  104.     @(initdir=`pwd`;                                              \
  105.     cd $(SYM_DIR);                                         \
  106.       cmd="$(LEX) $(LFLAGS) $$initdir/$*.lm" ; echo $$cmd; $$cmd ;    \
  107.       cmd="$(MV) $(MVFLAGS) lex.yy.c $*.m" ; echo $$cmd; $$cmd ;    \
  108.     cd $$initdir ;                             \
  109.     cmd="$(CC) $(ALL_CFLAGS) -I$$initdir -c $(SYM_DIR)/$*.m -o $(OFILE_DIR)/$*.o" ; \
  110.     echo $$cmd ; $$cmd )
  111.  
  112. .lm.m:
  113.     @(initdir=`pwd`;                                              \
  114.     cd $(SYM_DIR);                                         \
  115.       cmd="$(LEX) $(LFLAGS) $$initdir/$*.lm" ; echo $$cmd; $$cmd ;    \
  116.       cmd="$(MV) $(MVFLAGS) lex.yy.c $*.m" ; echo $$cmd; $$cmd )
  117.  
  118.  
  119. # dbcompiler relate rules:
  120. .dbmodela.dbmodel:
  121.     $(DBC) $*.dbmodela $(PRODUCT_ROOT)/$*.dbmodel
  122.  
  123. # msgwrap-related rules - note that suffix rules will not work because the basename changes and there is no one-to-one mapping from .msg's to .o's.
  124.  
  125.  
  126. # msgwrap-related rules 
  127.  
  128. $(MSGDERIVEDMFILES): $(MSGFILES)
  129.     @(if [ "$(MSGFILES)" != "" ] ; then \
  130.             $(MKDIRS) $(SYM_DIR) ; \
  131.         $(CP) $(MSGFILES) $(SYM_DIR) ; \
  132.         cd $(SYM_DIR) ; \
  133.         for msgfile in $(MSGFILES) ; do \
  134.             cmd="$(MSGWRAP) $$msgfile" ; \
  135.             echo $$cmd ; $$cmd ; \
  136.         done ; \
  137.         $(RM) -f $(MSGFILES) ; \
  138.     fi)
  139.  
  140. # mig-related rules - old and  should be updated
  141.  
  142. $(ALLMIGDERIVEDCFILES): $(ALLMIGFILES)
  143.     @(if [ "$(ALLMIGFILES)" != "" ] ; then \
  144.             $(MKDIRS) $(SYM_DIR) ; \
  145.         $(CP) $(ALLMIGFILES) $(SYM_DIR) ; \
  146.         cd $(SYM_DIR) ; \
  147.         for migfile in $(ALLMIGFILES) ; do \
  148.             cmd="$(MIG) $$migfile" ; \
  149.             echo $$cmd ; $$cmd ; \
  150.         done ; \
  151.         $(RM) -f $(ALLMIGFILES) ; \
  152.     fi)
  153.  
  154. # compresshelp-related rules:
  155.  
  156. $(HELP_STORES): $(HELP_DIRS) $(OTHER_HELP_DIRS)
  157.     @(for each in $(HELP_DIRS) $(OTHER_HELP_DIRS) ; do \
  158.        if [ -d $$each ] ; then \
  159.            $(MKDIRS) $(PRODUCT_ROOT)/$(LANGUAGE).lproj ; \
  160.            cmd="$(COMPRESSHELP) $$each -o $(PRODUCT_ROOT)/$$each" ; \
  161.            echo $$cmd ; $$cmd ; \
  162.         fi; \
  163.     done )
  164.  
  165. # in case the default Help directory does not yet exist
  166. $(HELP_DIRS):
  167.  
  168. # Nullify .m and .c single suffix rules so Help.c and Help.m can exist
  169. .m :
  170.  
  171. .c :
  172.  
  173.  
  174.